home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / shmem_get.z / shmem_get
Encoding:
Text File  |  2002-10-03  |  16.3 KB  |  186 lines

  1.  
  2. SHMEM_GET(3)                                                   SHMEM_GET(3)
  3.  
  4.  
  5. NNNNAAAAMMMMEEEE
  6.      sssshhhhmmmmeeeemmmm____cccchhhhaaaarrrraaaacccctttteeeerrrr____ggggeeeetttt, sssshhhhmmmmeeeemmmm____ccccoooommmmpppplllleeeexxxx____ggggeeeetttt, sssshhhhmmmmeeeemmmm____ddddoooouuuubbbblllleeee____ggggeeeetttt,
  7.      sssshhhhmmmmeeeemmmm____ffffllllooooaaaatttt____ggggeeeetttt, sssshhhhmmmmeeeemmmm____ggggeeeetttt4444, sssshhhhmmmmeeeemmmm____ggggeeeetttt8888, sssshhhhmmmmeeeemmmm____ggggeeeetttt33332222, sssshhhhmmmmeeeemmmm____ggggeeeetttt66664444,
  8.      sssshhhhmmmmeeeemmmm____ggggeeeetttt111122228888, sssshhhhmmmmeeeemmmm____ggggeeeettttmmmmeeeemmmm, sssshhhhmmmmeeeemmmm____iiiinnnntttt____ggggeeeetttt, sssshhhhmmmmeeeemmmm____iiiinnnntttteeeeggggeeeerrrr____ggggeeeetttt,
  9.      sssshhhhmmmmeeeemmmm____llllooooggggiiiiccccaaaallll____ggggeeeetttt, sssshhhhmmmmeeeemmmm____lllloooonnnngggg____ggggeeeetttt, sssshhhhmmmmeeeemmmm____lllloooonnnnggggddddoooouuuubbbblllleeee____ggggeeeetttt,
  10.      sssshhhhmmmmeeeemmmm____lllloooonnnngggglllloooonnnngggg____ggggeeeetttt, sssshhhhmmmmeeeemmmm____rrrreeeeaaaallll____ggggeeeetttt, sssshhhhmmmmeeeemmmm____sssshhhhoooorrrrtttt____ggggeeeetttt - Transfers data
  11.      from a specified processing element (PE).
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      C or C++:
  15.  
  16.         ####iiiinnnncccclllluuuuddddeeee <<<<mmmmpppppppp////sssshhhhmmmmeeeemmmm....hhhh>>>>
  17.  
  18.         vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____ddddoooouuuubbbblllleeee____ggggeeeetttt((((ddddoooouuuubbbblllleeee ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt ddddoooouuuubbbblllleeee ****_s_o_u_r_c_e,,,, ssssiiiizzzzeeee____tttt
  19.         _l_e_n,,,, iiiinnnntttt _p_e))));;;;
  20.  
  21.         vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____ffffllllooooaaaatttt____ggggeeeetttt((((ffffllllooooaaaatttt ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt ffffllllooooaaaatttt ****_s_o_u_r_c_e,,,, ssssiiiizzzzeeee____tttt
  22.         _l_e_n,,,, iiiinnnntttt _p_e))));;;;
  23.  
  24.         vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____ggggeeeetttt33332222((((vvvvooooiiiidddd ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt vvvvooooiiiidddd ****_s_o_u_r_c_e,,,, ssssiiiizzzzeeee____tttt _l_e_n,,,, iiiinnnntttt
  25.         _p_e))));;;;
  26.  
  27.         vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____ggggeeeetttt66664444((((vvvvooooiiiidddd ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt vvvvooooiiiidddd ****_s_o_u_r_c_e,,,, ssssiiiizzzzeeee____tttt _l_e_n,,,, iiiinnnntttt
  28.         _p_e))));;;;
  29.  
  30.         vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____ggggeeeetttt111122228888((((vvvvooooiiiidddd ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt vvvvooooiiiidddd ****_s_o_u_r_c_e,,,, ssssiiiizzzzeeee____tttt _l_e_n,,,, iiiinnnntttt
  31.         _p_e))));;;;
  32.  
  33.         vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____ggggeeeettttmmmmeeeemmmm((((vvvvooooiiiidddd ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt vvvvooooiiiidddd ****_s_o_u_r_c_e,,,, ssssiiiizzzzeeee____tttt _l_e_n,,,, iiiinnnntttt
  34.         _p_e))));;;;
  35.  
  36.         vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____iiiinnnntttt____ggggeeeetttt((((iiiinnnntttt ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt iiiinnnntttt ****_s_o_u_r_c_e,,,, ssssiiiizzzzeeee____tttt _l_e_n,,,, iiiinnnntttt
  37.         _p_e))));;;;
  38.  
  39.         vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____lllloooonnnngggg____ggggeeeetttt((((lllloooonnnngggg ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt lllloooonnnngggg ****_s_o_u_r_c_e,,,, ssssiiiizzzzeeee____tttt _l_e_n,,,,
  40.         iiiinnnntttt _p_e))));;;;
  41.  
  42.         vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____lllloooonnnnggggddddoooouuuubbbblllleeee____ggggeeeetttt((((lllloooonnnngggg ddddoooouuuubbbblllleeee ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt lllloooonnnngggg ddddoooouuuubbbblllleeee
  43.         ****_s_o_u_r_c_e,,,, ssssiiiizzzzeeee____tttt _l_e_n,,,, iiiinnnntttt _p_e))));;;;
  44.  
  45.         vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____lllloooonnnngggglllloooonnnngggg____ggggeeeetttt((((lllloooonnnngggg lllloooonnnngggg ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt lllloooonnnngggg lllloooonnnngggg ****_s_o_u_r_c_e,,,,
  46.         ssssiiiizzzzeeee____tttt _l_e_n,,,, iiiinnnntttt _p_e))));;;;
  47.  
  48.         vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____sssshhhhoooorrrrtttt____ggggeeeetttt((((sssshhhhoooorrrrtttt ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt sssshhhhoooorrrrtttt ****_s_o_u_r_c_e,,,, ssssiiiizzzzeeee____tttt
  49.         _l_e_n,,,, iiiinnnntttt _p_e))));;;;
  50.  
  51.      Fortran:
  52.  
  53.         IIIINNNNTTTTEEEEGGGGEEEERRRR _l_e_n,,,, _p_e
  54.  
  55.         CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____CCCCHHHHAAAARRRRAAAACCCCTTTTEEEERRRR____GGGGEEEETTTT((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _l_e_n,,,, _p_e))))
  56.  
  57.         CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____CCCCOOOOMMMMPPPPLLLLEEEEXXXX____GGGGEEEETTTT((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _l_e_n,,,, _p_e))))
  58.  
  59.         CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____DDDDOOOOUUUUBBBBLLLLEEEE____GGGGEEEETTTT((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _l_e_n,,,, _p_e))))
  60.  
  61.         CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____GGGGEEEETTTT4444((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _l_e_n,,,, _p_e))))
  62.  
  63.         CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____GGGGEEEETTTT8888((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _l_e_n,,,, _p_e))))
  64.  
  65.         CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____GGGGEEEETTTT33332222((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _l_e_n,,,, _p_e))))
  66.  
  67.         CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____GGGGEEEETTTT66664444((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _l_e_n,,,, _p_e))))
  68.  
  69.         CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____GGGGEEEETTTT111122228888((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _l_e_n,,,, _p_e))))
  70.  
  71.         CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____GGGGEEEETTTTMMMMEEEEMMMM((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _l_e_n,,,, _p_e))))
  72.  
  73.         CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____IIIINNNNTTTTEEEEGGGGEEEERRRR____GGGGEEEETTTT((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _l_e_n,,,, _p_e))))
  74.  
  75.         CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____LLLLOOOOGGGGIIIICCCCAAAALLLL____GGGGEEEETTTT((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _l_e_n,,,, _p_e))))
  76.  
  77.         CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____RRRREEEEAAAALLLL____GGGGEEEETTTT((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _l_e_n,,,, _p_e))))
  78.  
  79. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  80.      The ggggeeeetttt routines provide a high-performance method for copying a
  81.      contiguous data object from a different PE to a contiguous data object
  82.      on a the local PE.  The routines return after the data has been
  83.      delivered to the _t_a_r_g_e_t array on the local PE.  The _t_a_r_g_e_t data area
  84.      is left in a cache-coherent state on all systems, so there is no need
  85.      to use cache invalidation routines when only get routines are used for
  86.      communication.
  87.  
  88.      The arguments are as follows:
  89.  
  90.      _t_a_r_g_e_t    Local data object to be updated.
  91.  
  92.      _s_o_u_r_c_e    Data object on the PE identified by _p_e that contains the
  93.                data to be copied.  This data object must be remotely
  94.                accessible.
  95.  
  96.      _l_e_n       Number of elements in the _t_a_r_g_e_t and _s_o_u_r_c_e arrays.  _l_e_n
  97.                must be of type integer.  If you are using Fortran, it must
  98.                be a constant, variable, or array element of default integer
  99.                type.
  100.  
  101.      _p_e        PE number of the remote PE.  _p_e must be of type integer.  If
  102.                you are using Fortran, it must be a constant, variable, or
  103.                array element of default integer type.
  104.  
  105.      The _t_a_r_g_e_t and _s_o_u_r_c_e data objects must conform to typing constraints,
  106.      which are as follows:
  107.  
  108.      RRRRoooouuuuttttiiiinnnneeee                       DDDDaaaattttaaaa TTTTyyyyppppeeee ooooffff _t_a_r_g_e_t aaaannnndddd _s_o_u_r_c_e
  109.  
  110.      sssshhhhmmmmeeeemmmm____ggggeeeettttmmmmeeeemmmm                  Fortran:  Any noncharacter type.
  111.  
  112.                                    C:  Any data type. _l_e_n is scaled in
  113.                                    bytes.
  114.  
  115.      sssshhhhmmmmeeeemmmm____ggggeeeetttt4444, sssshhhhmmmmeeeemmmm____ggggeeeetttt33332222       Any noncharacter type that has a storage
  116.                                    size equal to 32 bits.
  117.  
  118.      sssshhhhmmmmeeeemmmm____ggggeeeetttt8888, sssshhhhmmmmeeeemmmm____ggggeeeetttt66664444       Any noncharacter type that has a storage
  119.                                    size equal to 64 bits.
  120.  
  121.      sssshhhhmmmmeeeemmmm____ggggeeeetttt111122228888                  Any noncharacter type that has a storage
  122.                                    size equal to 128 bits.
  123.  
  124.      sssshhhhmmmmeeeemmmm____sssshhhhoooorrrrtttt____ggggeeeetttt               Elements of type short.
  125.  
  126.      sssshhhhmmmmeeeemmmm____iiiinnnntttt____ggggeeeetttt                 Elements of type int.
  127.  
  128.      sssshhhhmmmmeeeemmmm____lllloooonnnngggg____ggggeeeetttt                Elements of type long.
  129.  
  130.      sssshhhhmmmmeeeemmmm____lllloooonnnngggglllloooonnnngggg____ggggeeeetttt            Elements of type long long.
  131.  
  132.      sssshhhhmmmmeeeemmmm____ffffllllooooaaaatttt____ggggeeeetttt               Elements of type float.
  133.  
  134.      sssshhhhmmmmeeeemmmm____ddddoooouuuubbbblllleeee____ggggeeeetttt              Elements of type double.
  135.  
  136.      sssshhhhmmmmeeeemmmm____lllloooonnnnggggddddoooouuuubbbblllleeee____ggggeeeetttt          Elements of type long double.
  137.  
  138.      SSSSHHHHMMMMEEEEMMMM____CCCCHHHHAAAARRRRAAAACCCCTTTTEEEERRRR____GGGGEEEETTTT           Elements of type character.  _l_e_n is the
  139.                                    number of characters to transfer.  The
  140.                                    actual character lengths of the _s_o_u_r_c_e
  141.                                    and _t_a_r_g_e_t variables are ignored.
  142.  
  143.      SSSSHHHHMMMMEEEEMMMM____CCCCOOOOMMMMPPPPLLLLEEEEXXXX____GGGGEEEETTTT             Elements of type complex of default
  144.                                    size.
  145.  
  146.      SSSSHHHHMMMMEEEEMMMM____DDDDOOOOUUUUBBBBLLLLEEEE____GGGGEEEETTTT (Fortran)    Elements of type double precision.
  147.  
  148.      SSSSHHHHMMMMEEEEMMMM____IIIINNNNTTTTEEEEGGGGEEEERRRR____GGGGEEEETTTT             Elements of type integer.
  149.  
  150.      SSSSHHHHMMMMEEEEMMMM____LLLLOOOOGGGGIIIICCCCAAAALLLL____GGGGEEEETTTT             Elements of type logical.
  151.  
  152.      SSSSHHHHMMMMEEEEMMMM____RRRREEEEAAAALLLL____GGGGEEEETTTT                Elements of type real.
  153.  
  154.      If you are using Fortran, data types must be of default size.  For
  155.      example, a real variable must be declared as RRRREEEEAAAALLLL, RRRREEEEAAAALLLL****4444, or
  156.      RRRREEEEAAAALLLL((((KKKKIIIINNNNDDDD====4444)))).
  157.  
  158. NNNNOOOOTTTTEEEESSSS
  159.      See iiiinnnnttttrrrroooo____sssshhhhmmmmeeeemmmm(3) for a definition of the term _r_e_m_o_t_e_l_y _a_c_c_e_s_s_i_b_l_e.
  160.  
  161. EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
  162.      Consider this simple example for Fortran.
  163.  
  164.           PROGRAM REDUCTION
  165.           REAL VALUES, SUM
  166.           COMMON /C/ VALUES
  167.           REAL WORK
  168.           CALL START_PES(0)             ! ALLOW ANY NUMBER OF PES
  169.           VALUES = MY_PE()              ! INITIALIZE IT TO SOMETHING
  170.           CALL SHMEM_BARRIER_ALL
  171.           SUM = 0.0
  172.           DO I = 0,NUM_PES()-1
  173.              CALL SHMEM_REAL_GET(WORK, VALUES, 1, I)
  174.              SUM = SUM + WORK
  175.           ENDDO
  176.           PRINT*,'PE ',MY_PE(),' COMPUTED       SUM=',SUM
  177.           CALL SHMEM_BARRIER_ALL
  178.           END
  179.  
  180. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  181.      iiiinnnnttttrrrroooo____sssshhhhmmmmeeeemmmm(3), sssshhhhmmmmeeeemmmm____ppppuuuutttt(3), sssshhhhmmmmeeeemmmm____iiiiggggeeeetttt(3), sssshhhhmmmmeeeemmmm____iiiixxxxggggeeeetttt(3),
  182.      sssshhhhmmmmeeeemmmm____qqqquuuuiiiieeeetttt(3)
  183.  
  184.      _M_e_s_s_a_g_e _P_a_s_s_i_n_g _T_o_o_l_k_i_t: _M_P_I _P_r_o_g_r_a_m_m_e_r'_s _M_a_n_u_a_l
  185.  
  186.